|
JSP 일반 |
[1] |
|
등록일:2010-08-10 23:34:12 (0%) 작성자: 제목:엑셀 시트 복사하기(with POI) + 리팩터링 |
|
출처 : http://whiteship.me/1708
private void copySheet(HSSFSheet from, HSSFSheet to) { HSSFRow firstRow = from.getRow(0); HSSFRow secondRow = from.getRow(1); HSSFRow thirdRow = from.getRow(2); HSSFRow firstRow2 = to.createRow(0); HSSFRow secondRow2 = to.createRow(1); HSSFRow thirdRow2 = to.createRow(2); Iterator<HSSFCell> iterator = firstRow.cellIterator(); short col = 0; while(iterator.hasNext()) addCell(firstRow2, col++, iterator.next().getStringCellValue()); col = 0; iterator = secondRow.cellIterator(); while(iterator.hasNext()) addCell(secondRow2, col++, iterator.next().getStringCellValue());
col = 0; iterator = thirdRow.cellIterator(); while(iterator.hasNext()) addCell(thirdRow2, col++, iterator.next().getStringCellValue()); }
무려 세 번이나 중복되고 있지만, 일단 기능이 제대로 돌아가는지부터 보려고 허겁 지겁 코딩을 하고 결과를 확인해 보니 괜춘하네요. 여기서 그만 둘까도 생각했지만, 에이~ 뭐 시간도 많은데 저런걸 그냥 두긴 뭐하다 싶어서 리팩터링..
private void copySheet(HSSFSheet from, HSSFSheet to, int fromRowCnt, int toRowCnt) { HSSFRow fromRow = null; HSSFRow toRow = null; for(int i = fromRowCnt ; i <= toRowCnt ; i++){ fromRow = from.getRow(i); toRow = to.createRow(i); Iterator<HSSFCell> iterator = fromRow.cellIterator(); short col = 0; while(iterator.hasNext()) addCell(toRow, col++, iterator.next().getStringCellValue()); } }
리팩터링 하는 김에 좀 더 Generic하게 만들어서 몇 번째 줄부터 몇 번째 줄까지 복사할지 인자로 넘겨주도록 수정 함. 이제 저 메소드는 ExcelUtils로 옮기면 ExelView쪽 코드는 약간 더 깔끔해지겠죠. 그건 뭐 간단하니 생략합니다.
|
[본문링크] 엑셀 시트 복사하기(with POI) + 리팩터링
|
[1]
|
|
|
|
|
코멘트(이글의 트랙백 주소:/cafe/tb_receive.php?no=31585 |
|
|
|
|
|
|
|
|
|
Copyright byCopyright ⓒ2005, SSISO Community All Rights Reserved.
|
|
|